﻿namespace Digitalmes.Core.Services;

/// <summary>
/// 计数器接口。
/// </summary>
public interface ICounterService : IApplicationService
{
    /// <summary>
    /// 获取计数器当前值，没有找到则返回 0。
    /// </summary>
    /// <param name="code">计数器编号</param>
    /// <returns></returns>
    Task<int> GetCurrentAsync(string code);

    /// <summary>
    /// 新增或创建计数器。
    /// </summary>
    /// <param name="code">计数器编号</param>
    /// <param name="createName">计数器名称，用于新增。</param>
    /// <returns>返回新增长后的值</returns>
    Task<int> IncrementOrCreateAsync(string code, string? createName = "");

    /// <summary>
    /// 重置计数器。
    /// </summary>
    /// <param name="code">计数器编号</param>
    /// <returns></returns>
    Task ResetAsync(string code);
}
